package com.simple.datax.seda.api;

import com.simple.datax.seda.core.ObjectHolder;
import com.simple.datax.seda.core.exception.InitFailedException;

public interface SelectSourceIF {
	public static int SELECT_WOULD_BLOCK = 1;
	public static int SELECT_FREEZE = 2;
	public static int SELECT_OK = 0;
	public static int SELECT_NONE = -1;

	public abstract void initialize() throws InitFailedException;

	public abstract void clear();

	public abstract void setCustomConfigurator(ConfigInfoIF config);

	public abstract int select(ObjectHolder objectHolder);

	public abstract String getSourceId() throws Exception;

	public abstract int remainCapacity() throws Exception;

	public abstract int remainObject() throws Exception;

	public abstract void freeze();

	public abstract void deregister(Object selObj);

}
